//package com.example.retrofitdemo.flow
//
//import android.util.Log
//import kotlinx.coroutines.Dispatchers
//import kotlinx.coroutines.flow.*
//
//suspend fun <T> flowRequest(block: suspend () -> T): Flow<T> {
//    return flow {
//        val response = block() ?: throw IllegalArgumentException("数据非法，获取响应数据为空")
//        emit(response)
//    }.flowOn(Dispatchers.IO)
//        .onCompletion { cause ->
//            run {
//                cause?.let {
//                    Log.e("请求错误", "错误信息：${cause}")
//                }// 这里再重新把捕获的异常再次抛出，调用的时候如果有必要可以再次catch 获取异常
//            }
//        }
//}
//
//suspend fun <T> Flow<T>.next(bloc: suspend T.() -> Unit): Unit = collect { bloc(it) }